#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Python运算符全面演示
包含所有类型的运算符使用示例
"""
"""
- 1.7大类运算符 ：
- 算术运算符：+ - * / // % **
- 比较运算符：== != > < >= <=
- 赋值运算符：= += -= *= /= //= %= **=
- 位运算符：& | ^ ~ << >>
- 逻辑运算符：and or not
- 成员运算符：in not in
- 身份运算符：is is not

- 2.中文注释说明 ：
- 每个运算符类别有明确标题
- 每个运算都有详细输出
- 包含运算符优先级示例
"""

# 1. 算术运算符
print("=== 算术运算符 ===")
a, b = 10, 3
print(f"加法: {a} + {b} = {a + b}")
print(f"减法: {a} - {b} = {a - b}")
print(f"乘法: {a} * {b} = {a * b}")
print(f"除法: {a} / {b} = {a / b}")
print(f"整除: {a} // {b} = {a // b}")
print(f"取余: {a} % {b} = {a % b}")
print(f"幂运算: {a} ** {b} = {a ** b}")

# 2. 比较运算符
print("\n=== 比较运算符 ===")
print(f"等于: {a} == {b} → {a == b}")
print(f"不等于: {a} != {b} → {a != b}")
print(f"大于: {a} > {b} → {a > b}")
print(f"小于: {a} < {b} → {a < b}")
print(f"大于等于: {a} >= {b} → {a >= b}")
print(f"小于等于: {a} <= {b} → {a <= b}")

# 3. 赋值运算符
print("\n=== 赋值运算符 ===")
x = 5
print(f"初始值: x = {x}")
x += 2; print(f"+=运算后: x = {x}")
x -= 1; print(f"-=运算后: x = {x}")
x *= 3; print(f"*=运算后: x = {x}")
x /= 2; print(f"/=运算后: x = {x}")
x //= 2; print(f"//=运算后: x = {x}")
x %= 3; print(f"%=运算后: x = {x}")
x **= 2; print(f"**=运算后: x = {x}")

# 4. 位运算符
print("\n=== 位运算符 ===")
m, n = 5, 3
print(f"按位与: {m} & {n} = {m & n}")
print(f"按位或: {m} | {n} = {m | n}")
print(f"按位异或: {m} ^ {n} = {m ^ n}")
print(f"按位取反: ~{m} = {~m}")
print(f"左移: {m} << 1 = {m << 1}")
print(f"右移: {m} >> 1 = {m >> 1}")

# 5. 逻辑运算符
print("\n=== 逻辑运算符 ===")
p, q = True, False
print(f"与运算: {p} and {q} → {p and q}")
print(f"或运算: {p} or {q} → {p or q}")
print(f"非运算: not {p} → {not p}")

# 6. 成员运算符
print("\n=== 成员运算符 ===")
list_demo = [1, 2, 3, 4, 5]
print(f"3 in {list_demo} → {3 in list_demo}")
print(f"6 not in {list_demo} → {6 not in list_demo}")

# 7. 身份运算符
print("\n=== 身份运算符 ===")
x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(f"x is y → {x is y}")
print(f"x is not z → {x is not z}")

# 8. 运算符优先级演示
print("\n=== 运算符优先级 ===")
result = 10 + 3 * 2 ** 2
print(f"10 + 3 * 2 ** 2 = {result}")  #幂运算高，乘法中，加法低

print("\n=== 执行完成 ===")